package com.mlk.waste.po;

import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.enums.IdType;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mlk.core.constants.Constant;
import lombok.*;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.NotBlank;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @author trekxu
 * @since 2019-06-18
 */
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class EngWasteUserOrder implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 订单编码
     */
    private String orderCode;

    /**
     * 提交人的open_id
     */
    @NotBlank(message = "openid不能为空")
    private String openId;
    /**
     * 客户姓名
     */
    @NotBlank(message = "客户姓名不能为空")
    private String name;
    /**
     * 客户的电话
     */
    @NotBlank(message = "客户电话不能为空")
    private String phone;

    /**
     * 预约时间
     */
    @NotNull(message = "预约时间")
    @JsonFormat(pattern = Constant.DATE_FORMAT)
    private Date appointTime;

    /**
     * 废品类型
     */
    @NotBlank(message = "废品类型不能为空")
    private String wasteType;

    @NotBlank(message = "废品类型名称不能为空")
    private String wasteTypeName;

    /**
     * 取货省份
     */
    @NotBlank(message = "取货省份不能为空")
    private String pickProvince;
    /**
     * 取货城市
     */
    @NotBlank(message = "取货城市不能为空")
    private String pickCity;
    /**
     * 取货地区
     */
    @NotBlank(message = "取货地区不能为空")
    private String pickArea;
    /**
     * 取货详细地址
     */
    @NotBlank(message = "取货详细地址不能为空")
    @Length(min = 3,message = "请输入详细的地址,方便业务员精确取货")
    private String pickAddress;
    /**
     * 1是估量下单 2是明细下单
     */
    private Integer orderType;
    /**
     * 订单的创建时间
     */
    @JsonFormat(pattern = Constant.DATE_TIME_FORMAT)
    private Date createTime;
    /**
     * 订单的状态 1 是可用,0是用户自己删除
     */

    /**
     * 计量单位
     */
    private String unit;

    /**
     * 明细下单的单位(定价的单位)
     */
    private String detailUnit;

    private Integer status;

    /**
     * 总数量
     */
    private BigDecimal totalNum;

    /**
     * 总价钱
     */
    private BigDecimal totalPrice;

    /**
     * 接单人的id
     */
    private String recOpenId;

    /**
     * 接单时间
     */
    @JsonFormat(pattern = Constant.DATE_TIME_FORMAT)
    private Date recTime;

    /**
     * 取货省code
     */
    @NotBlank(message = "取货省份不能为空")
    private String pickProvinceCode;
    /**
     * 取货市
     */
    @NotBlank(message = "取货城市不能为空")
    private String pickCityCode;
    /**
     * 取货区域
     */
    @NotBlank(message = "取货区域不能为空")
    private String pickAreaCode;
}
